package com.ojl.xmlparser;
import java.util.ArrayList;

import org.w3c.dom.Element;

import com.ojl.xmlparser.XmlParse;


public class sounds {
	
	public String soundsXml = "";
	public ArrayList <sounds.SoundCategory> soundCats = null;

	public sounds(String soundsXml) {
		this.soundsXml = soundsXml;
		this.soundCats = new ArrayList<sounds.SoundCategory>();		
		prepareSounds();
	}
	
	public void prepareSounds()
	{
		
		XmlParse xp = new XmlParse(this.soundsXml);
		
		//Getting all Categories
		ArrayList<?> catsObj = xp.getElements("Category");

		for (Object catObj: catsObj)
		{
			//Fetch Categories Label and Folder - And add it to main list.
			String id = xp.getAttribute(catObj,"id");
			String label = xp.getAttribute(catObj,"Label");
			String folder = xp.getAttribute(catObj,"Folder");
			SoundCategory sndCat = new SoundCategory(Integer.parseInt(id), label, folder);
			this.soundCats.add(sndCat);
			
			//Now fetch the items
			ArrayList<?> itmsObj = xp.getElements((Element) catObj, "Item");
			for (Object itmObj: itmsObj)
			{
				String itmId = xp.getAttribute(itmObj,"id");
				String itmLabel = xp.getAttribute(itmObj,"Label");
				String itmFile = xp.getAttribute(itmObj,"File");
				
				SoundItem sndItm = new SoundItem(Integer.parseInt(itmId), itmLabel, itmFile);
				sndCat.Items.add(sndItm);
			}			
			
		}
		
	}
	
	
	public ArrayList<sounds.SoundCategory> getSoundCategories()
	{
		return this.soundCats;
	}
	
	public ArrayList<SoundItem> getSoundItems(SoundCategory sndCategory)
	{
		ArrayList<sounds.SoundCategory> sndCats = getSoundCategories();
		
		for (SoundCategory eachSndCat: sndCats)
		{
			if (eachSndCat == sndCategory)
			{
				return eachSndCat.Items;
			}
		}
		return null;
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	public class SoundCategory{
		public int id = 0;
		public String Label = null;
		public String Folder = null;
		public ArrayList<SoundItem> Items = null;

		public SoundCategory(int id, String label, String folder) {
			this.id = id; 
			Label = label;
			Folder = folder;
			this.Items = new ArrayList<sounds.SoundItem>();
		}
	}
	
	public class SoundItem{	
		public String Label = null;
		public String File = null;
		public int id = 0;
		
		public SoundItem(int id, String label, String file) {
			this.id = id;
			Label = label;
			File = file;
		}
	}
	
}


